// defineStore用于小仓库定义
import { defineStore } from 'pinia'
// defineStroe接收两个参数
// 参数1:仓库名称 参数2:仓库配置对象
// defineStore方法执行会返回一个函数,函数的作用是让组件可以获取到仓库数据

// pinia选择式API写法,第二个参数直接写函数
const userInfoStore = defineStore('userInfo', {
  state: () => {
    return {
      name: '用户姓名',
      number: 1,
    }
  },
  actions: {
    updateName(params: string) {
      // 函数没有了context上下文对象,需要手动传入
      // this可以拿到仓库中所有的数据
      this.name = params
    },
  },
  getters: {
    total() {
      const data: number = this.number++
      return data
    },
  },
})

export default userInfoStore
